// Generated from E:\Leon\kbl\SLMN\src\main\resources\Mson.g4 by ANTLR 4.3
package com.slmn.antlr;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link MsonParser}.
 */
public interface MsonListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link MsonParser#string}.
	 * @param ctx the parse tree
	 */
	void enterString(@NotNull MsonParser.StringContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#string}.
	 * @param ctx the parse tree
	 */
	void exitString(@NotNull MsonParser.StringContext ctx);

	/**
	 * Enter a parse tree produced by the {@code Keyword}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void enterKeyword(@NotNull MsonParser.KeywordContext ctx);
	/**
	 * Exit a parse tree produced by the {@code Keyword}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void exitKeyword(@NotNull MsonParser.KeywordContext ctx);

	/**
	 * Enter a parse tree produced by the {@code ArrayArray}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void enterArrayArray(@NotNull MsonParser.ArrayArrayContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ArrayArray}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void exitArrayArray(@NotNull MsonParser.ArrayArrayContext ctx);

	/**
	 * Enter a parse tree produced by the {@code DomainClass}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void enterDomainClass(@NotNull MsonParser.DomainClassContext ctx);
	/**
	 * Exit a parse tree produced by the {@code DomainClass}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void exitDomainClass(@NotNull MsonParser.DomainClassContext ctx);

	/**
	 * Enter a parse tree produced by the {@code IdArray}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void enterIdArray(@NotNull MsonParser.IdArrayContext ctx);
	/**
	 * Exit a parse tree produced by the {@code IdArray}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void exitIdArray(@NotNull MsonParser.IdArrayContext ctx);

	/**
	 * Enter a parse tree produced by the {@code DomainArray}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void enterDomainArray(@NotNull MsonParser.DomainArrayContext ctx);
	/**
	 * Exit a parse tree produced by the {@code DomainArray}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void exitDomainArray(@NotNull MsonParser.DomainArrayContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType(@NotNull MsonParser.TypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType(@NotNull MsonParser.TypeContext ctx);

	/**
	 * Enter a parse tree produced by the {@code KeywordArray}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void enterKeywordArray(@NotNull MsonParser.KeywordArrayContext ctx);
	/**
	 * Exit a parse tree produced by the {@code KeywordArray}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void exitKeywordArray(@NotNull MsonParser.KeywordArrayContext ctx);

	/**
	 * Enter a parse tree produced by the {@code DomainValue}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void enterDomainValue(@NotNull MsonParser.DomainValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code DomainValue}
	 * labeled alternative in {@link MsonParser#pair}.
	 * @param ctx the parse tree
	 */
	void exitDomainValue(@NotNull MsonParser.DomainValueContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#domainHeader}.
	 * @param ctx the parse tree
	 */
	void enterDomainHeader(@NotNull MsonParser.DomainHeaderContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#domainHeader}.
	 * @param ctx the parse tree
	 */
	void exitDomainHeader(@NotNull MsonParser.DomainHeaderContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#mson}.
	 * @param ctx the parse tree
	 */
	void enterMson(@NotNull MsonParser.MsonContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#mson}.
	 * @param ctx the parse tree
	 */
	void exitMson(@NotNull MsonParser.MsonContext ctx);

	/**
	 * Enter a parse tree produced by the {@code Package}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void enterPackage(@NotNull MsonParser.PackageContext ctx);
	/**
	 * Exit a parse tree produced by the {@code Package}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void exitPackage(@NotNull MsonParser.PackageContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#override}.
	 * @param ctx the parse tree
	 */
	void enterOverride(@NotNull MsonParser.OverrideContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#override}.
	 * @param ctx the parse tree
	 */
	void exitOverride(@NotNull MsonParser.OverrideContext ctx);

	/**
	 * Enter a parse tree produced by the {@code Id}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void enterId(@NotNull MsonParser.IdContext ctx);
	/**
	 * Exit a parse tree produced by the {@code Id}
	 * labeled alternative in {@link MsonParser#domainName}.
	 * @param ctx the parse tree
	 */
	void exitId(@NotNull MsonParser.IdContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#decimal}.
	 * @param ctx the parse tree
	 */
	void enterDecimal(@NotNull MsonParser.DecimalContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#decimal}.
	 * @param ctx the parse tree
	 */
	void exitDecimal(@NotNull MsonParser.DecimalContext ctx);

	/**
	 * Enter a parse tree produced by the {@code ArrayValue}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void enterArrayValue(@NotNull MsonParser.ArrayValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ArrayValue}
	 * labeled alternative in {@link MsonParser#array}.
	 * @param ctx the parse tree
	 */
	void exitArrayValue(@NotNull MsonParser.ArrayValueContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#value}.
	 * @param ctx the parse tree
	 */
	void enterValue(@NotNull MsonParser.ValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#value}.
	 * @param ctx the parse tree
	 */
	void exitValue(@NotNull MsonParser.ValueContext ctx);

	/**
	 * Enter a parse tree produced by {@link MsonParser#object}.
	 * @param ctx the parse tree
	 */
	void enterObject(@NotNull MsonParser.ObjectContext ctx);
	/**
	 * Exit a parse tree produced by {@link MsonParser#object}.
	 * @param ctx the parse tree
	 */
	void exitObject(@NotNull MsonParser.ObjectContext ctx);
}